Skip to main content

CKYC Legal Entity Download Docker Solution

The following document highlights the details of the CKYC Legal Entity Download Docker Solution.

API Description

Objective

The HyperVerge CKYC Legal Entity Download Docker Solution enables Regulated Entities (REs) to search and download CKYC records for legal entities (companies, organisations) from CERSAI via a self-hosted Docker-based setup, without direct dependency on HyperVerge's cloud.

Note

For legal entity records, OTP consent is not required. Such downloads follow the non-OTP method using an authentication factor (date of incorporation, mobile number, email, or pincode).

Process

The Legal Entity Download API handles both search and download operations for legal entity CKYC records in a single call. To perform only a search, set returnOnlySearchResponse to yes. To perform a download, provide at least one authentication factor (doi, mobileNo, email, or pincode).

Use this API to search and optionally download the CKYC record for a legal entity.

API URL

http://localhost:3000/api/v1/legalDownload
Note on URL

Replace http://localhost:3000 with the RE's domain where the CKYC services are hosted.

Overview

The Legal Entity Download API is RESTful and uses standard HTTP verbs and status codes. Responses are in JSON format. Send all parameters as JSON through a POST request.

Method - POST

Authentication

You need a unique pair of application ID (appId) and application key (appKey) from HyperVerge to access this API.

Headers

HeaderMandatory / OptionalDescriptionInput Format
content-typeMandatoryDefines the media type for the request payload.application/json
appIdMandatoryThe application ID shared by HyperVerge. You can find the details in the dashboard's credentials tabThis should be a unique value
appKeyMandatoryThe application key shared by HyperVerge. You can find the details in the dashboard's credentials tabThis should be a unique value
transactionIdMandatoryA unique identifier for tracking a user journeyThis should be both unique and easily associated with the user's journey in your application(s)
moduleIdMandatoryThe module identifier for the CKYC search API.module_ind_ckyc_search_api

Inputs

The following table provides the details of the parameters required for the Legal Entity Download API request body:

ParameterMandatory / OptionalTypeDescriptionInput FormatDefault Value
idNoMandatoryStringThe ID number of the legal entity. The accepted format depends on the idType value.<Enter_the_ID_Number>Not Applicable
idTypeMandatoryString

The type of ID being submitted. Accepted values:

Identifier TypeidType Code
PANC
Officially valid document(s) in respect of person authorised to transact01
Certificate of Incorporation/Formation02
Registration Certificate03
Memorandum and Articles of Association04
Partnership Deed05
Trust Deed06
Resolution of Board/Managing Committee07
Power of Attorney granted to its manager, officers or employees to transact on its behalf08
Activity Proof - 109
Activity Proof - 210
<Enter_the_ID_Type>Not Applicable
entityTypeMandatoryStringIdentifies the record as a legal entity. Must be passed for the HyperVerge API to correctly route the request.legalEntityNot Applicable
doiMandatory for downloads; not required for searchStringDate of Incorporation. Used as an authentication factor for downloads. One of mobileNo, doi, email, or pincode must be provided for download.DD-MM-YYYYNot Applicable
mobileNoOptionalStringMobile number for verification. Must be a valid 10-digit Indian mobile number starting with 6-9. Can be used as an alternative authentication factor for download.<Enter_the_Mobile_Number>Not Applicable
emailOptionalStringRegistered email for verification. Can be used as an alternative authentication factor for download.<Enter_the_Email>Not Applicable
pincodeOptionalString6-digit postal code (non-zero). Can be used as an alternative authentication factor for download.<Enter_the_Pincode>Not Applicable
returnOnlySearchResponseOptionalStringIf set to yes, only the search response is returned. For a subsequent download, call the Legal Entity Download API again with an authentication factor.yes / nono
returnRecordCountDetailsOptionalStringReturns downloadCount and updateCount in the response. Recommended for downloads.yes / nono
returnckycRefNoOptionalStringReturns the CKYC reference number in the ckycRefNo field of the response.yes / nono
outputImageTypeOptionalStringbase64: returns images as base64-encoded strings. selfurl: generates presigned URLs for client storage. hvurl: generates presigned URLs for HyperVerge storage.base64 / selfurl / hvurlNot Applicable

Request

curl --location 'http://localhost:3000/api/v1/legalDownload' \
--header 'transactionId: <Enter_the_Transaction_ID>' \
--header 'moduleId: module_ind_ckyc_search_api' \
--header 'appId: <Enter_the_App_ID>' \
--header 'appKey: <Enter_the_App_Key>' \
--header 'Content-Type: application/json' \
--data '{
"idNo": "<Enter_the_ID_Number>",
"idType": "<Enter_the_ID_Type>",
"entityType": "legalEntity",
"doi": "<Enter_the_DOI>",
"outputImageType": "base64",
"returnOnlySearchResponse": "no",
"returnRecordCountDetails": "yes",
"returnckycRefNo": "yes"
}'

Success Response

The following code snippet demonstrates a success response from the Legal Entity Download API:

{
"status": "success",
"statusCode": "200",
"result": {
"constitutionType": "",
"constitutionTypeOthers": "",
"ckycNo": "XXXXXXXXXX5658",
"fullName": "",
"doi": "",
"idList": [
{ "STATUS": 3, "TYPE": 2 },
{ "STATUS": 3, "TYPE": "C" }
],
"placeOfIncorporation": "",
"countryOfIncorporation": "",
"tinGst": "",
"tinCountry": "",
"address1": "",
"address2": "",
"address3": "",
"city": "",
"district": "",
"state": "",
"country": "",
"pincode": "",
"poa": "",
"poaOthers": "",
"permAndCorresAddSame": "",
"corresAddress1": "",
"corresAddress2": "",
"corresAddress3": "",
"corresCity": "",
"corresDist": "",
"corresState": "",
"corresCountry": "",
"corresPin": "",
"corresPoa": "",
"proofOfAddress": "",
"resiStdCode": "",
"resiTelNo": "",
"offStdCode": "",
"offtelNo": "",
"faxCode": "",
"faxNo": "",
"mobileCode": "",
"mobileNumber": "",
"email": "",
"decDate": "",
"decPlace": "",
"kycDate": "********",
"updatedDate": "",
"DocSub": "",
"kycName": "",
"kycDesignation": "",
"kycBranch": "",
"kycEmpCode": "",
"orgName": "",
"orgCode": "",
"numIdentity": "",
"numRelated": "",
"numImages": "",
"pan": "",
"form60Submitted": "",
"dateOfBusinessCommencement": "",
"identityVerificationDone": "",
"officiallyValidDoc": "",
"certOfIncorporation": "",
"regcertificate": "",
"articleOfAssociation": "",
"partnershipDeed": "",
"trustDeed": "",
"boardResolution": "",
"powerOfAttorney": "",
"activityProof1": "",
"activityProof2": "",
"imageDetails": [
{ "code": "02", "type": "", "imageUrl": "" }
],
"relatedPersonDetails": [],
"downloadCount": "",
"updateCount": "",
"ckycRefNo": "",
"age": ""
}
}
Search response fields

In practice, CERSAI only returns the following fields for the search response:

  • ckycNo (masked)
  • ckycRefNo
  • fullName
  • constitutionType
  • placeOfIncorporation
  • age
  • kycDate
  • updatedDate
  • idList (type, status)
  • imageDetails (type, imageUrl)

The full response structure is preserved for consistency with the download flow, reducing the need for any client-side transformation logic.

Success Response Details

The following table describes the key fields returned in the Legal Entity Download API success response:

ParameterTypeDescription
statusstringThe status of the request. Returns success on a successful call.
statusCodestringThe HTTP status code for the response.
result.ckycNostringThe CKYC number of the legal entity (masked in search response).
result.fullNamestringThe registered name of the legal entity.
result.constitutionTypestringThe type of legal constitution (e.g. Public Limited Company, Partnership).
result.doistringDate of Incorporation of the legal entity.
result.placeOfIncorporationstringThe place where the legal entity was incorporated.
result.idListarrayList of ID types and their verification status associated with the CKYC record.
result.kycDatestringThe date on which the KYC was completed. Masked in the response (********).
result.updatedDatestringThe date on which the KYC record was last updated.
result.imageDetailsarrayList of images associated with the CKYC record, returned in the format specified by outputImageType.
result.relatedPersonDetailsarrayDetails of persons related to or authorised to transact on behalf of the legal entity. Only returned in the download response.
result.downloadCountstringTotal number of times this CKYC record has been downloaded. Returned only when returnRecordCountDetails is yes.
result.updateCountstringTotal number of times this CKYC record has been updated. Returned only when returnRecordCountDetails is yes.
result.ckycRefNostringThe CKYC reference number. Returned only when returnckycRefNo is yes.

Error Responses

The following are sample error responses for the Legal Entity Download API:

{
"status": "failure",
"statusCode": "401",
"error": {
"code": "ER_AUTH",
"message": "Missing/Invalid credentials"
}
}

Error Response Details

A failure response contains a failure status with a relevant status code and error message. The following table lists the error responses for the Legal Entity Download API:

Status CodeError MessageError DescriptionError Resolution
401Missing/Invalid credentialsThe request is missing or has invalid appId and appKey values.Verify and provide valid appId and appKey credentials.
404Digital signature cannot be verified. The certificate is expired.The request XML failed digital signature verification on the CERSAI portal. Possible reasons: request XML signed with incorrect signature tag patterns; FI public and private keys do not match; expired digital signature certificate (DSC).Check the signing configuration or contact HyperVerge support.
500Internal Server ErrorKindly check the request headers or contact the HyperVerge team for resolution.Check the request headers or contact the HyperVerge team for resolution.
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: